package org.dtrd.config.wechat.entity.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.apache.commons.lang3.RandomStringUtils;

/**
 * @author qr
 * @date 2022/3/19 10:11
 */
@ApiModel("创建二维码的请求")
@Getter
@Setter
public class WechatQrCodeRequest {

    @ApiModelProperty("该二维码有效时间，以秒为单位。 最大不超过2592000（即30天），此字段如果不填，则默认有效期为60秒。")
    private Integer expire_seconds = 3600 * 24;

    @ApiModelProperty("QR_SCENE: 临时整型，QR_STR_SCENE: 临时字符串，QR_LIMIT_SCENE: 永久整型，QR_LIMIT_STR_SCENE: 永久字符串")
    private String action_name;

    @ApiModelProperty("二维码详细信息")
    private ActionInfo action_info;

    public WechatQrCodeRequest(String sceneId, String contentStr, String actionName) {
        this.action_name = actionName;
        this.action_info = new ActionInfo(sceneId, contentStr);
    }



    @ApiModel("二维码详细信息")
    @Getter
    @Setter
    public static class ActionInfo {

        @ApiModelProperty("二维码内容")
        private Scene scene;

        public ActionInfo(String sceneId, String contentStr) {
//            this.scene = new Scene(sceneId, contentStr);
            this.scene = new Scene(null,  contentStr);
        }

    }

    @ApiModel("二维码内容")
    @Getter
    @Setter
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Scene {

        @ApiModelProperty("场景值ID，临时二维码时为32位非0整型，永久二维码时最大值为100000（目前参数只支持1--100000）")
        private String scene_id;

        @ApiModelProperty("场景值ID（字符串形式的ID），字符串类型，长度限制为1到64")
        private String scene_str;
    }
}
